#include <stdio.h>
#include <algorithm>
using namespace std;

int _42;
int l, h;
int ans[10010];
int numPr;
int fac[10010];
bool primes[10010];

void fact(int x) {
	fac[x]=0;

	for (int i=1; i<=x; i++)
		if (x%i==0) fac[x]++;
}

void sieve() {
	int p=2;

	primes[1]=false;
	for (int i=2; i<=10000; i++) primes[i]=true;

	while (p*p<=10000) {
		for (int i=p; (i*p)<=10000; i++)
			primes[i*p]=false;

		while (!primes[++p]) if (p*p<=10010) break;
	}
}

int main() {
	fac[0]=0;
	sieve();	

	for (int i=1; i<=10000; i++) fact(i);
	scanf("%d", &_42);

	while (_42--) {
		scanf("%d %d", &l, &h);
		numPr=0;

		for (int i=min(l,h); i<=max(l,h); i++) {
			if (primes[fac[i]]) ans[numPr++]=i;
		}
		
		if (numPr) {
			for (int i=0; i<numPr; i++) {
				printf("%d", ans[i]);
				if (i+1<numPr) printf(" ");
			}
			printf("\n");
		}
		else printf("-1\n");
	}

	return 0;
}
